home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4076 / 4076.xpi / chrome / addthis.jar / content / Toolbar.js < prev    next >
Encoding:
Text File  |  2010-01-06  |  6.0 KB  |  184 lines

  1. var AddThis_Toolbar = {
  2.  
  3.     _resizing: false,
  4.         
  5.     init : function() {
  6.         AddThis_Util.dbg("Toolbar.init: initting...");
  7.         AddThis_Toolbar.prepare();
  8.         AddThis_Util.dbg("Toolbar.init: done.");
  9.     },
  10.     
  11.     toggleVisibility : function () {
  12.         AddThis_Util.dbg("Toolbar.toggleVisibility: entered...");
  13.         var visible = AddThis_Toolbar.isVisible();
  14.         var newCollapsed = !visible;
  15.         AddThis_Util.dbg("Toolbar.toggleVisibility: Currently visible: " + visible + ", setting to: " + newCollapsed);
  16.         AddThis_Toolbar.setVisibility(newCollapsed);
  17.         AddThis_Util.dbg("Toolbar.toggleVisibility: done.");
  18.     },
  19.     
  20.     isVisible : function(doc) {
  21.         if (typeof doc == "undefined") doc = document;
  22.         var visible = !doc.getElementById("at_toolbar").collapsed;
  23.         AddThis_Util.dbg("Toolbar.isVisible: " + visible);
  24.         return visible;
  25.     },
  26.     
  27.     setVisibility : function(visible, doc) {
  28.         if (typeof doc == "undefined") doc = document;
  29.         AddThis_Util.dbg("Toolbar.setVisibility: " + visible);
  30.         var bar = doc.getElementById("at_toolbar");
  31.         bar.collapsed = !visible;
  32.         doc.persist(bar.id, "collapsed");
  33.         AddThis_Util.dbg("Toolbar.setVisibility: collapsed now = " + bar.collapsed);
  34.     },
  35.     
  36.     prepare: function(doc)
  37.     {
  38.         AddThis_Util.dbg("Toolbar.prepare: entered...");
  39.         
  40.         if (typeof doc == "undefined") doc = document;
  41.         
  42.         var tb_sc = doc.getElementById("at_tbShareContainer");
  43.         
  44.         AddThis_Toolbar.setServices(doc);
  45.         AddThis_Toolbar.setButtonStyle(doc);
  46.         
  47.         AddThis_Util.dbg("Toolbar.prepare: done");
  48.     },
  49.     
  50.     setServices: function(doc) {
  51.         AddThis_Util.dbg("Toolbar.setServices: entered...");
  52.         
  53.         if (typeof doc == "undefined") doc = document;
  54.         var container = doc.getElementById('at_tbShareContainer');
  55.         var overflow = doc.getElementById('at_tbShareOverflowMenu');
  56.         
  57.         
  58.         var menuitems = container.getElementsByTagName('toolbarbutton');
  59.         while (menuitems.length > 0) container.removeChild(menuitems[0]);
  60.         
  61.         menuitems = overflow.getElementsByTagName('menuitem');
  62.         while (menuitems.length > 0) overflow.removeChild(menuitems[0]);
  63.         
  64.         var serviceId, items=0, first=true;
  65.             activeServices = AddThis_Util.getActiveServicesObject();
  66.         for (serviceId in activeServices)
  67.         {
  68.             container.insertBefore(AddThis_Toolbar._createServiceButton(serviceId),null);
  69.             items++;
  70.         }
  71.         
  72.         
  73.         doc.getElementById("at_tbShare").className = Math.random().toString();
  74.         
  75.         AddThis_Toolbar.resizeDelay();
  76.         AddThis_Util.dbg("Toolbar.setServices: done");
  77.         
  78.     },
  79.     
  80.     setButtonStyle: function(doc) {
  81.         AddThis_Util.dbg("Toolbar.updateButtonStyle: entered...");
  82.         
  83.         var style = AddThis_Util.getStringPref('extensions.addthis.toolbar.buttonstyle', 'icons');
  84.         
  85.         if (typeof doc == "undefined") doc = document;
  86.         var tb = doc.getElementById("at_toolbar");
  87.         
  88.         tb.setAttribute("mode", style);
  89.         
  90.         if (style=="icons") style="pictures";
  91.         tb.setAttribute("buttonstyle", style);
  92.         
  93.         AddThis_Toolbar.resizeDelay();
  94.         AddThis_Util.dbg("Toolbar.updateButtonStyle: done");
  95.     },
  96.     
  97.     resize: function() {
  98.         AddThis_Util.dbg("Toolbar.resize: entered...");
  99.         
  100.         if (this._resizing) return; 
  101.         
  102.         var doc = document;
  103.         if (!AddThis_Toolbar.isVisible(doc)) return; 
  104.         
  105.         AddThis_Util.dbg("Toolbar.resize: started..."); 
  106.         this._resizing = true;
  107.         
  108.         var sp = doc.getElementById("at_tbSpacer");
  109.         if (!sp) {
  110.             var bw = AddThis_Preferences._getBrowser();
  111.             doc = bw.document;
  112.             sp = doc.getElementById("at_tbSpacer");
  113.         }
  114.         
  115.         var sc = doc.getElementById("at_tbShareContainer"),
  116.             oc = doc.getElementById("at_tbShareOverflowMenu");
  117.         
  118.         AddThis_Util.dbg('spacer width: ' + sp.boxObject.width);
  119.         
  120.         
  121.         if (sp.boxObject.width > 0 && oc.firstChild) {
  122.             
  123.             AddThis_Toolbar._grow(sp,sc,oc);
  124.             AddThis_Toolbar._shrink(sp,sc,oc); 
  125.         } else if (sp.boxObject.width <= 0) {
  126.             AddThis_Toolbar._shrink(sp,sc,oc);
  127.         }
  128.         
  129.         var o = doc.getElementById("at_tbShareOverflow");
  130.         o.hidden = (oc.firstChild) ? false : true;
  131.         
  132.         this._resizing = false;
  133.         AddThis_Util.dbg("Toolbar.resize: done");
  134.  
  135.     },
  136.     
  137.     _grow: function(sp,sc,oc) {
  138.         AddThis_Util.dbg("Toolbar._grow: entered...");
  139.         
  140.         var mi;
  141.         
  142.         while (sp.boxObject.width > 0 && oc.firstChild)
  143.         {
  144.             mi = oc.removeChild(oc.firstChild);
  145.             sc.appendChild(AddThis_Toolbar._createServiceButton(mi.getAttribute("serviceid")));
  146.         }
  147.         
  148.         AddThis_Util.dbg("Toolbar._grow: done...");
  149.     },
  150.     
  151.     _shrink: function(sp,sc,oc) {
  152.         AddThis_Util.dbg("Toolbar._shrink: entered...");
  153.         
  154.         var tbb;
  155.         
  156.         while (sp.boxObject.width <= 0 && sc.lastChild)
  157.         {
  158.             tbb = sc.removeChild(sc.lastChild);
  159.             oc.insertBefore(AddThis_Sharing._createMenuitem(tbb.getAttribute("serviceid")),oc.firstChild);
  160.         }
  161.         
  162.         AddThis_Util.dbg("Toolbar._shrink: done...");
  163.     },
  164.     
  165.     resizeDelay: function()
  166.     {
  167.         AddThis_Util.dbg("Toolbar.resizeDelay triggered");
  168.         setTimeout("AddThis_Toolbar.resize()",500);
  169.     },
  170.     
  171.     _createServiceButton: function(serviceId)
  172.     {
  173.         var newItem = document.createElement("toolbarbutton");
  174.         newItem.setAttribute("serviceid",serviceId);
  175.         newItem.setAttribute("label",AddThis_Constants.services[serviceId].title);
  176.         newItem.setAttribute("tooltiptext",AddThis_Constants.services[serviceId].title);
  177.         newItem.setAttribute("image", "chrome://addthis/skin/services/"+serviceId+".gif");
  178.         newItem.setAttribute("oncommand", "AddThis_Sharing.invokeService('"+serviceId+"');event.stopPropagation();");
  179.         return newItem;
  180.     }
  181.     
  182.     
  183. }
  184.